/*
 * Copyright (c) 2019 Nanjing Wind Information Co., Ltd. All Rights Reserved;
 * @Package wind.autotest.service
 * @version 1.0.0
 * @Date 2019年4月11日
 * @author jlliu.Farrior@wind.com.cn
 */
package wind.autotest.service.frontend;

import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import wind.autotest.dao.TestTableDAO;
import wind.autotest.dao.TestTaskDAO;
import wind.autotest.pojo.TestTable;
import wind.autotest.pojo.TestTask;
import wind.autotest.util.Page4Navigator;

/**
 * @Description: <类功能描述>
 * @author jlliu.Farrior@wind.com.cn
 * @Date 2019年4月11日 下午7:57:36
 * 
 */
@Service
public class TestTableService {
	@Autowired
	private TestTaskDAO taskDAO;
	@Autowired
	private TestTableDAO tableDAO;
	
	public Page4Navigator<TestTable> list(int task_id, int start, int size, int navigatePages) {
		// TODO null处理
		TestTask testTask = taskDAO.findOne(task_id);		
		Sort sort = new Sort(Sort.Direction.DESC, "id");
		Pageable pageable = new PageRequest(start, size,sort);
		Page<TestTable> pageFromJPA =tableDAO.findByTestTask(testTask, pageable);
		return new Page4Navigator<>(pageFromJPA,navigatePages);
	}

	public void add(TestTable bean) {
		tableDAO.save(bean);
	}

	public void delete(int id) {
		tableDAO.delete(id);
	}

	public TestTable get(int id) {
		TestTable task= tableDAO.findOne(id);
		return task;
	}
	
	public void update(TestTable bean) {
		tableDAO.save(bean);
	}
	
	
	public void deleteByTask(TestTask task) {
		List<TestTable> tables = tableDAO.findByTestTask(task);
		if (CollectionUtils.isEmpty(tables)) {
			return;
		}
		
		tableDAO.delete(tables);
	}
	
	
	public List<TestTable> listAll(int task_id) {
		// TODO null处理
		TestTask testTask = taskDAO.findOne(task_id);
		List<TestTable> testTabls =tableDAO.findByTestTask(testTask);
		return testTabls;
	}
	
	
	public TestTable findMainTable(int task_id) {
		// TODO null处理
		return tableDAO.findMainTableByTaskId(task_id);
	}
	
	
}
